অ্যাপাচি কমন্স কালেকশনস (Apache Commons Collections) লাইব্রেরি Java প্রোগ্রামে Key-Value Mapping এর জন্য বিভিন্ন ডেটা স্ট্রাকচার সরবরাহ করে। এর মধ্যে একটি গুরুত্বপূর্ণ স্ট্রাকচার হল MultiMap, যা একটি কী (key) এর সাথে একাধিক মান (value) অ্যাসোসিয়েট করতে সক্ষম। এটি মূলত Map এর মতো কাজ করে, তবে এখানে একটি কী এর সাথে একাধিক মান যোগ করা যায়, যা সাধারণ Map
এ সম্ভব নয়।
MultiMap ব্যবহার করে আপনি একাধিক মান একটি কী এর সাথে সংরক্ষণ করতে পারেন, যা বিশেষভাবে উপকারী যখন একটি কী এর সাথে একাধিক সম্পর্ক থাকতে পারে। যেমন, একটি ব্যক্তির সাথে একাধিক ফোন নম্বর অথবা একটি ইভেন্ট এর সাথে একাধিক অংশগ্রহণকারী হতে পারে।
এতে Key-Value Mapping এর মাধ্যমে ডেটার সম্পর্ক এবং একাধিক মানের সাথে সহজভাবে কাজ করা যায়।
MultiMap হল একটি ম্যাপ যা একাধিক মান (values) একটি কী (key) এর সাথে সংরক্ষণ করে। এতে key এর জন্য একাধিক value থাকতে পারে, যেখানে সাধারণ Map
একটি কী এর সাথে শুধুমাত্র একটি মান সংরক্ষণ করতে সক্ষম।
যেমন, যদি আপনি একাধিক ফোন নম্বর (values) একটি একক নাম (key) এর সাথে রাখতে চান, তবে আপনি MultiMap
ব্যবহার করতে পারেন।
অ্যাপাচি কমন্স কালেকশনস লাইব্রেরি MultiMap এর জন্য বিভিন্ন ধরনের ইমপ্লিমেন্টেশন সরবরাহ করে, তার মধ্যে প্রধান দুটি হল:
এছাড়া, আপনি যদি আপনার নিজস্ব Map বা Bag ইমপ্লিমেন্টেশন ব্যবহার করতে চান, তবে আপনি এগুলো কাস্টমাইজ করে MultiMap তৈরি করতে পারেন।
এখানে একটি উদাহরণ দেওয়া হলো যেখানে আমরা MultiMap ব্যবহার করে একাধিক ফোন নম্বর (values) একটি ব্যক্তির নাম (key) এর সাথে সংরক্ষণ করেছি।
import org.apache.commons.collections4.MultiMap;
import org.apache.commons.collections4.map.MultiValueMap;
import java.util.List;
import java.util.ArrayList;
public class MultiMapExample {
public static void main(String[] args) {
// Create a MultiMap to store names with multiple phone numbers
MultiMap<String, String> phoneBook = new MultiValueMap<>();
// Add some phone numbers to the MultiMap for a person
phoneBook.put("John", "123-456-7890");
phoneBook.put("John", "987-654-3210");
phoneBook.put("Jane", "555-555-5555");
phoneBook.put("John", "555-123-4567");
// Display the phone numbers for John
System.out.println("Phone numbers for John: " + phoneBook.get("John"));
// Display the phone numbers for Jane
System.out.println("Phone numbers for Jane: " + phoneBook.get("Jane"));
// Get all phone numbers from the MultiMap
System.out.println("All phone numbers: " + phoneBook);
}
}
এখানে:
MultiValueMap
ব্যবহার করে আমরা John এর জন্য একাধিক ফোন নম্বর (123-456-7890
, 987-654-3210
, 555-123-4567
) সংরক্ষণ করেছি।phoneBook.get("John")
এর মাধ্যমে আমরা John এর সকল ফোন নম্বর প্রিন্ট করেছি।555-555-5555
) সংরক্ষণ করা হয়েছে।আউটপুট:
Phone numbers for John: [123-456-7890, 987-654-3210, 555-123-4567]
Phone numbers for Jane: [555-555-5555]
All phone numbers: {John=[123-456-7890, 987-654-3210, 555-123-4567], Jane=[555-555-5555]}
MultiMap
একটি কী এর সাথে একাধিক মান সংরক্ষণ করতে সক্ষম, যা সাধারণ Map
এ সম্ভব নয়। এটি বিশেষভাবে উপকারী যখন একাধিক সম্পর্ক বা ডেটা সংরক্ষণ করতে হয়, যেমন একজন ব্যক্তির একাধিক ফোন নম্বর।MultiMap
আপনার ডেটাকে একটি সংগঠিত এবং শুদ্ধ ফর্মে রাখতে সাহায্য করে, যেখানে একাধিক মান একটি কী এর সাথে সংরক্ষিত থাকে।MultiMap
এর মধ্যে List, Set, বা Bag ব্যবহার করতে পারেন, যাতে আপনি ডেটার ধরণ অনুযায়ী উপযুক্ত স্ট্রাকচার বেছে নিতে পারেন।অ্যাপাচি কমন্স কালেকশনসে MultiMap
এর আরও কিছু ইমপ্লিমেন্টেশন রয়েছে, যার মধ্যে ListMultiMap, SetMultiMap, এবং BagMultiMap অন্তর্ভুক্ত। আপনি সেগুলিকে নির্দিষ্ট প্রয়োজনে ব্যবহার করতে পারেন।
import org.apache.commons.collections4.MultiMap;
import org.apache.commons.collections4.map.ListMultiValueMap;
public class ListMultiMapExample {
public static void main(String[] args) {
// Create a ListMultiMap
MultiMap<String, String> phoneBook = new ListMultiValueMap<>();
// Add multiple phone numbers for the same person
phoneBook.put("John", "123-456-7890");
phoneBook.put("John", "987-654-3210");
phoneBook.put("Jane", "555-555-5555");
// Display phone numbers for John
System.out.println("Phone numbers for John: " + phoneBook.get("John"));
}
}
এখানে:
ListMultiValueMap
ব্যবহার করে MultiMap
তৈরি করা হয়েছে যেখানে List
ডেটা স্ট্রাকচার ব্যবহার করা হয়েছে। এর মানে হল যে, John এর জন্য একাধিক ফোন নম্বর একটি লিস্ট হিসেবে সংরক্ষিত হবে।MultiMap
ব্যবহার করতে পারেন, যেখানে ইভেন্ট হবে কী এবং অংশগ্রহণকারী হবে মান।অ্যাপাচি কমন্স কালেকশনস (Apache Commons Collections) লাইব্রেরির MultiMap একটি শক্তিশালী টুল যা Key-Value Mapping এর মাধ্যমে একাধিক মান একটি কী এর সাথে সংরক্ষণ করতে সহায়তা করে। এটি বিশেষভাবে উপকারী যখন একাধিক সম্পর্ক বা ডেটা সংরক্ষণ করতে হয়, যেমন একজন ব্যক্তির একাধিক ফোন নম্বর। MultiMap ব্যবহার করে আপনি আপনার ডেটাকে আরও সঠিকভাবে সংগঠিত এবং কার্যকরীভাবে পরিচালনা করতে পারবেন।
common.read_more